Sharing of information has long been a goal of modem civilization. Information must be represented in some form in order that it be transferred between people. Visual stimulation is perhaps the most efficient means for people to acquire information. The cliche "a picture is worth a thousand words" is well-founded.
Recently information has taken on a digital form, which has enhanced the ease of electronic transmission of information. The most notable example is the dissemination of information through the World Wide Web (referred to simply as the "Web"), which is a collection of millions of computers interconnected by electronic communication devices.
A server is used for placing information where it is available for access by multiple users. The Web has enabled convenient publishing of information from a server, or host computer (referred to simply as a "server"), to user computers (referred to simply as "clients") that are controlled by users requesting information.
Accessing information over the Web is typically done using Web browsers. A Web browser is software that resides on a user computer and communicates with servers via established Internet protocols. Information transmitted by servers is converted to visual displays on the user computer by means of a Web browser.
Internet protocols enable client-server communication over the Web. These protocols include low level protocols, such as Transaction Control Protocol/Internet Protocol (TCP/IP), and higher level protocols such as Hypertext Transfer Protocol (HTTP) A general reference on Internet protocols may be accessed on:
http:/www.w3.org/Protocols,
or on
http:/www.cis.ohio-state.edu/tbin/rfc/arpa-internet-protocols.html. Another useful reference is: Hethmon, Paul S., Illustrated Guide to HTTP, Manning Publications Co., Greenwich, Conn., 1997.
HTTP servers provide a way for remote clients to access data on servers. The HTTP protocol provides a method for making simple requests from a user to a server. User requests can take the form of GET requests or POST requests in HTTP. Typically, in a GET or POST request the user specifies a file to be delivered, and through HTTP headers the server can specify what is being delivered. The most pervasive file format used on the Web is HyperText Markup Language (HTML). A reference on HTML may be accessed at:
http:/204.57.196.12/reference/htmlspec2.0.
HTML files are typically relatively small, i.e. less than 100 Kbytes.
HTTP Ver. 1.0 specifies that a communication between a server and user proceeds as follows: A user's request is initiated with a header which is terminated by a double carriage return linefeed. This is followed by the body of the request which is similarly terminated by a double carriage return linefeed. The server responds with an HTTP header terminated with a carriage return linefeed and then sends the body of the response. The response is terminated when a connection is closed. This normally occurs when the server has finished sending data to the user, and the server closes the connection.
Server performance is generally inversely proportional to the quantity of data being served per unit time. The task of delivering a file from a server to a user is typically not computationally expensive. This task includes reading the file from the server's peripherals, e.g. a disk drive, and transmitting the data from the file in the specified protocol, e.g. TCP/IP. TCP/IP transmits data in units of "packets." The time it takes for a user to retrieve a file depends upon the number of packets transmitted by the server.
Added functionality for server-side applications may be provided via a secondary protocol, such as Common Gateway Interface (CGI). A reference on CGI may be accessed at:
http:/www.pricecostco.com/exchange/irf/cgi-spec.html.
Reference is also made to Dwight, J., Erwin, Michael and Niles, Robert, Using CGI, Second Edition, Que Corporation, Indianapolis, Ind., 1997.
Communication of digital signals between computers is plagued by a bandwidth problem, where a limited bandwidth creates bottlenecks in the transmission of electronic signals. Fortunately, textual information is largely immune to the bandwidth problem, since it can be compactly represented electronically, and this has enabled the Web publishing industry to flourish. Unfortunately, however, image information is difficult to represent compactly in electronic form. Whereas even complex text information, such as multiple fonts and scales, can be represented with a few dozen bytes of HTML, images are usually orders of magnitude larger.
Images are typically represented in one of two standard formats, JPEG or GIF. Currently, to transmit a small photograph over the Web, such as a 2".times.3" photograph scanned in at 300 dots per inch (dpi) and compressed using JPEG, takes more than two minutes over a typical 1 KByte per second connection. This makes the viewing of quality images, such as a small museum painting of size 10".times.10" scanned in at resolution 300 dpi, very very slow.
A recently developed protocol, the Internet Imaging Protocol (IIP), was designed specifically for mitigating the bandwidth problem. It exploits the fact that the user cannot view more than a computer screen of image data at any one time. Even if the full image is enormous, such as 15,000.times.15,000 pixels, the user never views more than the screen resolution, usually less than 1,024.times.1,024 pixels, at any given time. Thus it is unnecessary to transmit more than a screen-size amount of data, for any specific view of the image. IIP specifies a method for a user to request portions of an image at a specific resolution. A reference for IIP is the document "Internet Imaging Protocol," .COPYRGT.1997 Hewlett Packard Company, Live Picture, Inc., and Eastman Kodak Company, the contents of which are hereby incorporated by reference.
A server with server-side software that supports IIP is referred to as an "image server." Currently there are two popularly accepted ways to request image data from an image server using IIP; namely, primarily using server-side processing of the request, or primarily using client-side processing.
To illustrate server-side processing, suppose a user with a viewing window of 640.times.480 pixels desires to view an image whose full resolution is 15,000.times.15,000 pixels. The user is unable to view the full image at its original resolution, and can either view the complete image at a low resolution, or view only a portion of the image at a high resolution. Usually the user prefers to begin with an initial view showing the full image at a low resolution, and then to interactively navigate by zooming, i.e., increasing the resolution while decreasing the "field of view," or the portion of the image being viewed, and panning, i.e. translating the current view.
In accordance with the IIP, the full image at a 640.times.480 pixel resolution for an initial view can be requested using the following set of IIP commands:
fif=&lt;image name&gt;&wid=640&hei=480&cvt=jpeg
This request specifies the desired image by means of the f i f command, and specifies the width and height of the user viewing window by means of the wid and hei commands, respectively. The last command, cvt, specifies the format of the image to be sent. As mentioned hereinabove, JPEG is supported by most browsers.
For the image server to process the above IIP request, the server must analyze the original image and generate an image matching the requested specifications, specifically the desired portion and dimensions. The analysis and generation are usually computationally expensive. In the example under discussion, a 15,000.times.15,000 pixel image would have to be re-sized, requiring approximately 675 MBytes to process.
To facilitate this processing, images can be stored in a pre- computed multi-resolution tiled format. Multi-resolution tiled images are constructed by first creating multiple copies of the image at different resolutions. Moreover, at each resolution the image is partitioned into a collection of disjoint tiles.
FLASHPIX.RTM., a registered trademark of the Digital Imaging Group (DIG), is an example of a multi-resolution tiled image format A FlashPix image is constructed by starting with an original image and recursively sub-sampling it at half the resolution. The recursion continues until the final sub-sampled image is reduced to 64 pixels or less in each dimension. Each resolution level is partitioned into tiles that are 64.times.64 pixels in size. A reference for FLASHPIX.RTM. is a document "FlashPix Format Specification," .COPYRGT.1996, 1997, Eastman Kodak Company, the contents of which are hereby incorporated by reference.
Referring to the abovementioned example, for a FlashPix image server to respond with an image at 640.times.480 pixel resolution that contains the full original image which is sub-sampled, is simply a matter of selecting an appropriate close pre-computed resolution. Using the numbers in the example, the successive resolutions are 15,000.times.15,000 pixels, then 7,500.times.7,500 pixels, then 3,750.times.3,750 pixels, then 1,875.times.1,875 pixels, then 937.times.937 pixels, etc. For example, the image server can choose resolution level 937.times.937 pixels and re-sample to 640.times.480 pixels. This is far better than working with a 15,000.times.15,000 pixel image.
FlashPix images are more complicated than simple raster images. The individual 64.times.64 tiles into which each resolution is partitioned are usually JPEG compressed for Internet applications. Furthermore, the FlashPix format specification requires that the tiles be stored in a storage within a Microsoft OLE structured storage file. Structured storage files are compound files composed of multiple storages and streams, where storages are analogous to folders/directories and streams are analogous to files. Although there is overhead in accessing information inside a structured storage file, such files provide a clean interface for a complicated file structure. Structured storage is discussed in Appendix A of the above-referenced FlashPix Format Specification.
Assignee's co-pending U.S. patent application Ser. No. 08/979,220 filed Nov. 26, 1997 and entitled A METHOD AND SYSTEM FOR HTML-DRIVEN INTERACTIVE IMAGE CLIENT, the disclosure of which is hereby incorporated by reference, describes a way to view FlashPix images using the IIP cvt command, without the need for a plug-in or a Java applet. Each interactive user navigation command is implemented through a dynamic HTML page containing a cvt command with appropriate parameters. This puts a maximum strain on the server, as nearly all processing is done on the server side.
The invention described in the aforesaid U.S. patent application Ser. No. 08/979,220 filed Nov. 26, 1997 and entitled A METHOD AND SYSTEM FOR HTML-DRIVEN INTERACTIVE IMAGE CLIENT utilizes caching to alleviate the computing burden, so that processed data is immediately available for repeated requests from one or many clients for the same image portion.